ABSTRACT
While reactive synthesis and syntax-guided synthesis (SyGuS) have seen enormous progress in recent years, combining the two approaches has remained a challenge. In this work, we present the synthesis of reactive programs from Temporal Stream Logic modulo theories (TSL-MT), a framework that unites the two approaches to synthesize a single program. In our approach, reactive synthesis and SyGuS collaborate in the synthesis process, and generate executable code that implements both reactive and data-level properties.
We present a tool, temos, that combines state-of-the-art methods in reactive synthesis and SyGuS to synthesize programs from TSL-MT specifications. We demonstrate the applicability of our approach over a set of benchmarks, and present a deep case study on synthesizing a music keyboard synthesizer.
- Rajeev Alur, Rastislav Bodik, Garvit Juniwal, Milo MK Martin, Mukund Raghothaman, Sanjit A Seshia, Rishabh Singh, Armando Solar-Lezama, Emina Torlak, and Abhishek Udupa. 2013. Syntax-guided synthesis. IEEE.Google Scholar
- Rajeev Alur, Dana Fisman, Saswat Padhi, Andrew Reynolds, Rishabh Singh, and Abhishek Udupa. 2019. The 6th Competition on Syntax-Guided Synthesis. https://sygus.org/comp/2019/results-slides.pdf Accessed: 2019-11-20.Google Scholar
- Sourav Anand and Nadia Polikarpova. 2018. Automatic Synchronization for GPU Kernels. In Formal Methods in Computer Aided Design, FMCAD. IEEE. https://doi.org/10.23919/FMCAD.2018.8602999 Google ScholarCross Ref
- C.P.R. Baaij. 2015. Digital circuit in Cλ aSH: functional specifications and type-directed synthesis. Ph.D. Dissertation. University of Twente. isbn:978-90-365-3803-9 https://doi.org/10.3990/1.9789036538039 eemcs-eprint-23939. Google ScholarCross Ref
- Clark Barrett and Cesare Tinelli. 2018. Satisfiability modulo theories. In Handbook of Model Checking. Springer.Google Scholar
- Clark W. Barrett, Christopher L. Conway, Morgan Deters, Liana Hadarean, Dejan Jovanovic, Tim King, Andrew Reynolds, and Cesare Tinelli. 2011. CVC4. In Computer Aided Verification - 23rd International Conference, CAV (Lecture Notes in Computer Science, Vol. 6806). Springer. https://doi.org/10.1007/978-3-642-22110-1_14 Google ScholarCross Ref
- Roderick Bloem, Swen Jacobs, and Ayrat Khalimov. 2014. Parameterized synthesis case study: AMBA AHB (extended version). arXiv preprint arXiv:1406.7608.Google Scholar
- Benjamin Caulfield, Markus N Rabe, Sanjit A Seshia, and Stavros Tripakis. 2015. What’s Decidable about Syntax-Guided Synthesis? arXiv preprint arXiv:1510.08393.Google Scholar
- Pavol Cerný, Edmund M. Clarke, Thomas A. Henzinger, Arjun Radhakrishna, Leonid Ryzhyk, Roopsha Samanta, and Thorsten Tarrach. 2015. From Non-preemptive to Preemptive Scheduling Using Synchronization Synthesis. In Computer Aided Verification - 27th International Conference, CAV (Lecture Notes in Computer Science, Vol. 9207). Springer. https://doi.org/10.1007/978-3-319-21668-3_11 Google ScholarCross Ref
- Pavol Černỳ, Thomas A Henzinger, Arjun Radhakrishna, Leonid Ryzhyk, and Thorsten Tarrach. 2014. Regression-free synthesis for concurrency. In International conference on computer aided verification.Google ScholarDigital Library
- Sarah Chasins and Julie L. Newcomb. 2016. Using SyGuS to Synthesize Reactive Motion Plans. In Proceedings Fifth Workshop on Synthesis (Electronic Proceedings in Theoretical Computer Science, Vol. 229). Open Publishing Association. https://doi.org/10.4204/EPTCS.229.3 Google ScholarCross Ref
- Wonhyuk Choi, Michel Vazirani, and Mark Santolucito. 2021. Program Synthesis for Musicians: A Usability Testbed for Temporal Logic Specifications. In Asian Symposium on Programming Languages and Systems.Google Scholar
- Alonzo Church. 1957. Applications of recursive arithmetic to the problem of circuit synthesis. Summaries of the Summer Institute of Symbolic Logic at Cornell University, Vol. 1.Google Scholar
- Alessandro Cimatti, Marco Roveri, Viktor Schuppan, and Andrei Tchaltsev. 2008. Diagnostic information for realizability. In International Workshop on Verification, Model Checking, and Abstract Interpretation.Google ScholarCross Ref
- Edmund Clarke, Orna Grumberg, Somesh Jha, Yuan Lu, and Helmut Veith. 2000. Counterexample-guided abstraction refinement. In International Conference on Computer Aided Verification.Google ScholarCross Ref
- Conal Elliott and Paul Hudak. 1997. Functional reactive animation. In Proceedings of the second ACM SIGPLAN international conference on Functional programming.Google ScholarDigital Library
- Bernd Finkbeiner, Philippe Heim, and Noemi Passing. 2021. Temporal Stream Logic modulo Theories. arxiv:2104.14988. arxiv:2104.14988Google Scholar
- Bernd Finkbeiner, Felix Klein, Ruzica Piskac, and Mark Santolucito. 2019. Synthesizing functional reactive programs. In Proceedings of the 12th ACM SIGPLAN International Symposium on Haskell.Google ScholarDigital Library
- Bernd Finkbeiner, Felix Klein, Ruzica Piskac, and Mark Santolucito. 2019. Temporal stream logic: Synthesis beyond the bools. In International Conference on Computer Aided Verification.Google ScholarCross Ref
- Sumit Gulwani. 2011. Automating String Processing in Spreadsheets using Input-Output Examples. In POPL. https://www.microsoft.com/en-us/research/publication/automating-string-processing-spreadsheets-using-input-output-examples/Google Scholar
- Liana Hadarean, Kshitij Bansal, Dejan Jovanović, Clark Barrett, and Cesare Tinelli. 2014. A tale of two solvers: Eager and lazy approaches to bit-vectors. In International Conference on Computer Aided Verification.Google ScholarDigital Library
- Charles Antony Richard Hoare. 1969. An axiomatic basis for computer programming. Commun. ACM, 12, 10 (1969).Google Scholar
- Kyle Hsu, Rupak Majumdar, Kaushik Mallik, and Anne-Kathrin Schmuck. 2018. Multi-layered abstraction-based controller synthesis for continuous-time systems. In Proceedings of the 21st International Conference on Hybrid Systems: Computation and Control (part of CPS Week).Google ScholarDigital Library
- Qinheping Hu, Jason Breck, John Cyphert, Loris D’Antoni, and Thomas Reps. 2019. Proving unrealizability for syntax-guided synthesis. In International Conference on Computer Aided Verification.Google ScholarCross Ref
- Qinheping Hu, John Cyphert, Loris D’Antoni, and Thomas Reps. 2020. Exact and approximate methods for proving unrealizability of syntax-guided synthesis problems. In Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation.Google ScholarDigital Library
- Swen Jacobs. 2014. Extended AIGER format for synthesis. arXiv preprint arXiv:1405.5793.Google Scholar
- Swen Jacobs, Felix Klein, and Sebastian Schirmer. 2016. A high-level LTL synthesis format: TLSF v1. 1. arXiv preprint arXiv:1604.02284.Google Scholar
- Swen Jacobs, Guillermo Perez, Roderick Bloem, and Armin Biere. 2020. The 7th Reactive Synthesis Competition. http://www.syntcomp.org/wp-content/uploads/2020/07/SYNTCOMP2020-SYNT.pdf Accessed: 2021-05-18.Google Scholar
- Ron Koymans. 1990. Specifying real-time properties with metric temporal logic. Real-time systems, 2, 4 (1990).Google Scholar
- Shuvendu K Lahiri and Sanjit A Seshia. 2004. The UCLID decision procedure. In International Conference on Computer Aided Verification.Google ScholarCross Ref
- Robert Love. 2010. Linux kernel development. Pearson Education.Google Scholar
- Parthasarathy Madhusudan. 2011. Synthesizing reactive programs. In Computer Science Logic (CSL’11)-25th International Workshop/20th Annual Conference of the EACSL.Google Scholar
- Oded Maler and Dejan Nickovic. 2004. Monitoring temporal properties of continuous signals. In Formal Techniques, Modelling and Analysis of Timed and Fault-Tolerant Systems. Springer.Google Scholar
- Philipp J. Meyer, Salomon Sickert, and Michael Luttenberger. 2018. Strix: Explicit Reactive Synthesis Strikes Back!. In Computer Aided Verification - 30th International Conference, CAV (Lecture Notes in Computer Science, Vol. 10981). Springer. https://doi.org/10.1007/978-3-319-96145-3_31 Google ScholarCross Ref
- Amir Pnueli. 1977. The temporal logic of programs. In 18th Annual Symposium on Foundations of Computer Science.Google ScholarDigital Library
- Amir Pnueli and Roni Rosner. 1989. On the Synthesis of an Asynchronous Reactive Module. In Automata, Languages and Programming, 16th International Colloquium (Lecture Notes in Computer Science, Vol. 372). Springer. https://doi.org/10.1007/BFb0035790 Google ScholarCross Ref
- Vasumathi Raman, Alexandre Donzé, Dorsa Sadigh, Richard M. Murray, and Sanjit A. Seshia. 2015. Reactive Synthesis from Signal Temporal Logic Specifications. In Proceedings of the 18th International Conference on Hybrid Systems: Computation and Control (HSCC ’15). Association for Computing Machinery, New York, NY, USA. isbn:9781450334334Google Scholar
- Leonid Ryzhyk and Adam Walker. 2016. Developing a Practical Reactive Synthesis Tool: Experience and Lessons Learned. In Proceedings Fifth Workshop on Synthesis, SYNT@CAV (EPTCS, Vol. 229). https://doi.org/10.4204/EPTCS.229.8 Google ScholarCross Ref
- David Shah, Eddie Hung, Clifford Wolf, Serge Bazanski, Dan Gisselquist, and Miodrag Milanovic. 2019. Yosys+ nextpnr: an open source framework from verilog to bitstream for commercial fpgas. In IEEE 27th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM).Google ScholarCross Ref
- Abraham Silberschatz, Peter Baer Galvin, and Greg Gagne. 2014. Operating system concepts essentials.Google Scholar
Index Terms
- Can reactive synthesis and syntax-guided synthesis be friends?
Recommendations
Can reactive synthesis and syntax-guided synthesis be friends?
SPLASH Companion 2021: Companion Proceedings of the 2021 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for HumanityWhile reactive synthesis and syntax-guided synthesis (SyGuS) have seen enormous progress in recent years, combining the two approaches has remained a challenge. In this work, we present the synthesis of reactive programs from Temporal Stream Logic ...
Optimizing synthesis with metasketches
POPL '16Many advanced programming tools---for both end-users and expert developers---rely on program synthesis to automatically generate implementations from high-level specifications. These tools often need to employ tricky, custom-built synthesis algorithms ...
Syntax-guided synthesis of Datalog programs
ESEC/FSE 2018: Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software EngineeringDatalog has witnessed promising applications in a variety of domains. We propose a programming-by-example system, ALPS, to synthesize Datalog programs from input-output examples. Scaling synthesis to realistic programs in this manner is challenging due ...
Comments